#ifndef BANK_USER_HH
#define BANK_USER_HH

#include <string>

enum class Role {
    CUSTOMER,
    EMPLOYEE,
    ADMIN,
    AUDITOR
};

// Could be an abstract base class if common user properties exist
// Or just used for type identification via Role enum
class User {
protected:
    std::string username; // Or userId
    Role userRole;

public:
    User(std::string name, Role role);
    virtual ~User() = default;

    std::string getUsername() const;
    Role getRole() const;

    // Potentially add virtual methods for role-specific actions if needed
};

#endif // BANK_USER_HH 